This invention relates to the management of forwarding databases in a cascaded stack of network units, particularly multi-port switches, in a packet-based data communication system which employs addressed data packets. The invention particularly relates to the reduction of unnecessary traffic flow constituted by the broadcast or xe2x80x98floodingxe2x80x99 of packets having unknown destination MAC (media access control) addresses.
Packet-based data communication systems, such as Ethernet systems, commonly employ address data packets (otherwise called frames) which include source and destination media access control addresses as well as, usually, other type, control and address data, such as network address or IP address data. Data of this character normally precedes the payload or message data of a packet. The MAC address data in such a packet defines, in media access control or xe2x80x9clayer 2xe2x80x9d terms, the device from which a packet has come and to which a packet should be sent. There are various forms of packet including xe2x80x9cmulticastxe2x80x9d packets, which have an address specifying a group of destination devices, and xe2x80x9cbroadcastxe2x80x9d packets, which should be sent to all possible destinations. Excessive broadcasting of packets is limited by the segmentation of a network into, for example, virtual local area networks, and it is common for packets to contain an identification of the virtual local area network (VLAN) on which they originate.
Notwithstanding the variety of packets, the present invention will be particularly concerned with xe2x80x98unicastxe2x80x99 packets. If such a packet is received by a network unit, it is usually subject to a look-up in a database. Such a database, normally called xe2x80x98forwarding databasexe2x80x99, contains destination addresses with forwarding data, such as port numbers, and other data. Different forms of forwarding databases, including those which can be looked up by means of media access control addresses and network (IP) addresses are known. Various methods of look-up are also known in the literature.
Broadly, a forwarding database may be compiled by reading the source MAC addresses of incoming data packets and, if such source address is not in the database the entry of that source address can be made together with irrelevant forwarding data, for example the port on which that packet was received Then, when a packet is received having a destination address which matches an entry in the table, the packet can be sent to that destination address defined by the forwarding data in the data entry. It is also known to add entries in such a database by means of xe2x80x98managementxe2x80x99 frames, particularly when a network is initially set up.
If a unit receives a packet which has an xe2x80x98unknownxe2x80x99 destination address, that is to say an address which is not the subject of an entry in the table, it is usual to xe2x80x98floodxe2x80x99 the packet, that is to say to send it to all the possible ports of the unit. This is a preliminary to an xe2x80x98address resolution protocolxe2x80x99 wherein when such a flooded packet is received by a device which has a network address corresponding to the address in the packet it will reply and the relevant destination address can be entered into the database for subsequent use in relation to packets intended for the destination.
Stacked Units
A feature of modern network practice is xe2x80x98stackingxe2x80x99 of units such as switches so as to form in effect a single entity. Switches which are similar or at least compatible may be connected together, as explained later, so that for example four switches having, for example, 24 ports each may behave as a single 96-port switch. The term xe2x80x98stackablexe2x80x99 is a conventional term in these circumstances. It is customary to stack the units physically one on top of the other but the term is intended to relate to the functional relationship between them.
Cascades
A group of stacked units requires a means of communication which is generally termed a xe2x80x98cascadexe2x80x99. A cascade is connected to at least one port on each unit and provides in effect a communication ring by means of which a packet which leaves a unit by way of a port (termed a cascade port) connected to the ring can reach all the other units by way of the ring. Cascades normally include a variety of control mechanisms which enable a given unit to determine the unit by which a packet was placed on the cascade, mechanisms to prevent circulation of its packets continuously on the ring and so on. Cascades are known in a variety of forms. Examples are:
Trunking
A further known feature in network practice relevant to the invention is xe2x80x98trunkingxe2x80x99, which is described in for example WO99/29072 and GB-2333429. The tern is used to describe a communication link which essentially comprises a multiplicity of links from a device or group of devices to another device or group. In its simplest form it is constituted by a multiplicity of links each to a respective port on a single unit from a single source entity, a typical feature is that traffic intended for a particular destination may arrive at any of the links constituting the trunk. Trunking is known to be useful in order to increase the bandwidth available for traffic from a particular source or going to a particular destination.
It is generally desirable in order to provide appropriate versatility in network connections, to allow the connection of the links constituting the trunk to different ports not only on the same network unit such as a switch but also to ports on different units of a stack. Such a trunk may be termed a xe2x80x98stack-wide trunkxe2x80x99. It is not necessary for all the units in a stack to have a port which is a xe2x80x98memberxe2x80x99 of the trunk. Copending patent application of O""Keeffe et al., Ser. No. 09/562,131 filed May 1, 2000, and assigned to the same assignee as the present application describes such a stack-wide trunk and is incorporated by reference herein.
The present invention relates specifically to a problem arising from excessive flooding of packets containing xe2x80x98unknownxe2x80x99 unicast destination MAC addresses. When network switches are stacked together, it is normal practice to flood such addresses out on all ports of the stack. Thus if a liven unit in the stack receives on one of its ports a packet of which the destination MAC address is not the subject of an entry in its forwarding database, the unit will not only flood that packet out on all the ports (or at least all those ports for which such flooding is possible or enabled) but will also place the packet on the cascade so that the packet reaches all the other units in the stack so as to be flooded from all the relevant ports. Although this flooding causes a temporary and inevitable degradation in bandwidth and performance of the network, eventually a response from the destination MAC address in question will cause that address to be xe2x80x98learnedxe2x80x99, that is to say made the subject of an entry in the forwarding database of all the units in the stack. Then whether a unit receives a packet containing that specific destination MAC address by way of one of its ports directly or by way of the cascade, no flooding will occur subsequently while the destination MAC address remains in the database. However, in a network system where there is a stack-wide trunk, a response from a remote device which would resolve that unknown destination address will be sent to one of the units in the stack but need not necessarily reach all the other units of the stack. More particularly, the response which would enable resolution of the unknown destination MAC address may be sent by the receiving unit back along the trunk by way of a different link to that on which the packet was originally received.
This problem can be alleviated at present by means of separate flagged storage of unknown unicast destination MAC addresses. More particularly, if a unit receives an unknown unicast destination MAC address, it will save the destination MAC address in a distinctive manner, for example in a separate area in memory or with a special flag. The stack of units may be controlled by stack-wide software, which polls each unit to determine whether any of the units have received any unknown unicast MAC addresses and has recourse to the forwarding, databases of all the units to resolve the unknown unicast destination MAC addresses for all the units. However, such a solution is generally slow and is limited by the size of the storage available and the speed at which the software can be permitted to poll all units on the stack. More particularly polling of units will require bandwidth on the cascade which is then not available for ordinary traffic flow.
The present invention is based on the transmission of a packet which has an unknown unicast MAC destination address on the cascade with a flag, which may be constituted by a single bit, to indicate that the destination address is unknown. Such a flag may be constituted by otherwise redundant field space in the header of tile packet, for example a VLAN tag header as described later. All the units on the cascade will receive the flagged packet and if any unit already has that MAC address in its database, it will produce a management frame which is sent on the cascade indicating, to the other units of the stack the location of the unknown MAC address. This allows all units on the stack to xe2x80x98learnxe2x80x99 that destination MAC address, i.e. make it the subject of an entry in its forwarding database, the entry including appropriate forwarding data for that destination address.
Further features of the invention will be apparent from the following description with respect to the accompanying drawings.